package com.winning.ds.role.dao;

import com.winning.ds.common.entity.MenuTreeEntity;
import com.winning.ds.common.entity.SysCzjsQxEntity;
import com.winning.ds.common.entity.TreeEntity;
import com.winning.ds.common.jdbc.BaseDao;
import com.winning.ds.role.entity.SysCzjsEntity;
import com.winning.ds.role.entity.SysCzjsGnsjqxEntity;
import com.winning.ds.role.entity.SysZcjgQxEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface SysCzjsDao extends BaseDao<SysCzjsEntity> {

  // 根据主键来删除角色
  int deleteByPrimaryKey(String jsdm);

  // 新增角色
  int insert(SysCzjsEntity record);

  // 新增指定字段
  int insertSelective(SysCzjsEntity record);

  // 角色详情--
  SysCzjsEntity selectByPrimaryKey(String jsdm);

  // 根据指定字段更新
  int updateByPrimaryKeySelective(SysCzjsEntity record);

  // 根据主键 更新
  int updateByPrimaryKey(SysCzjsEntity record);

  // 角色列表 根据机构编码,角色名称来筛查
  List<SysCzjsEntity> selectRoleList(Map map);

  List<SysCzjsEntity> selectRoleListJgyhgl(Map map);

  // 菜单树
  List<MenuTreeEntity> getMenuTree(String jgbm);

  // 功能按钮
  List<MenuTreeEntity> getGnanList(String jgbm);

  // 数据权限
  List<MenuTreeEntity> getSjqxList(String jgbm);

  // 查询所有菜单
  List<MenuTreeEntity> getMenu();

  // 获取注册机构权限
  List<MenuTreeEntity> getZcjgqx(String jgbm);

  // 保存机构权限
  void saveJgqx(List<SysZcjgQxEntity> szqe);

  // 根据机构编码删除  当前机构权限
  void delZcJgqx(String jgbm);

  // 保存功能权限
  void saveGnqx(List<SysCzjsQxEntity> scqe);

  // 保存数据权限
  void saveJgSjqx(List<SysCzjsGnsjqxEntity> scgse);

  // 获取角色   功能权限数据
  List<SysCzjsQxEntity> getGnqxCheck(@Param("jgbm") String jgbm, @Param("jsdm") String jsdm);

  // 获取角色   数据权限数据
  List<SysCzjsGnsjqxEntity> getSjqxCheck(@Param("jgbm") String jgbm, @Param("jsdm") String jsdm);

  // 删除功能菜单 根据机构编码，角色编码
  void delSysCzjsQx(@Param("jgbm") String jgbm, @Param("jsdm") String jsdm);

  // 查询功能菜单权限
  List<SysCzjsQxEntity> querySysCzjsQx(@Param("jgbm") String jgbm, @Param("jsdm") String jsdm);

  // 删除数据权限
  void delSysCzjsSjqx(@Param("jgbm") String jgbm, @Param("jsdm") String jsdm);

  // 查询功能菜单权限
  List<SysZcjgQxEntity> querySysZcjgqx(String jgbm);

  // 数据权限idlist
  List<TreeEntity> getSjqxIdList(String jgbm);

  // 数据权限pidlist
  List<TreeEntity> getSjqxPidList(String jgbm);
}
